﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Timers;


public partial class Dangky : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        for (int i = DateTime.Now.Year+5; i >= 1900; i--)
            cb_NamHetHan.Items.Add(i.ToString());
    }
    protected void bt_DangKy_Click(object sender, EventArgs e)
    {
        
        if(!KiemTraTaiKhoan())
            return;
        if(!KiemTraTheHopLe())
            return;
        NguoiDung_Ctl NguoiDung = new NguoiDung_Ctl();
        KhoiTao(NguoiDung);
        if (TaoMailDangKy())
            Response.Redirect("HoanTatDangKy.aspx?Email=1");
        else
            Response.Redirect("HoanTatDangKy.aspx?Email=2");
        NguoiDung.insert();
    }

    private bool TaoMailDangKy()
    {
        string FromName="Công ty đấu giá trực tuyến";
        string FromMail="admin@DauGiaTrucTuyen.com";
        string Subject="Mail kích hoạt tài khoản";
        string ToName=tb_HoTen.Text;
        string ToMail=tb_Email.Text;
        ChuoiDangKy_Ctl ChuoiDangKy = new ChuoiDangKy_Ctl();
        ChuoiDangKy.info.ChuoiDangKy = Function.GetSalt(7);
        ChuoiDangKy.insert();
        string Body = "Chào " + tb_HoTen.Text
                    + "<p>Bạn hay một người nào đó đã sử dụng email này để"
                    + "đăng ký tham gia vào trang web đấu giá trực tuyến của chúng tôi."
                    + "Vui lòng nhấn vào đường link phía dưới để hoàn tất đăng ký."
                    + "<p>Link kích hoạt :<A HREF='http://localhost:1085/website/KichHoatTaiKhoan.aspx?Chuoi=" + ChuoiDangKy.info.ChuoiDangKy.Substring(0,10)
                    + "'> http://localhost:1085/website/KichHoatTaiKhoan.asp?Chuoi=" + ChuoiDangKy.info.ChuoiDangKy.Substring(0,10) + "</A>"
                    + "<p>Bang quản trị của trang web";
        SGmail Mail = new SGmail();
        if (Mail.SendMail(ToMail, Subject, Body, true)!=-1)
            return true;
        return false;
    }

    private void KhoiTao(NguoiDung_Ctl NguoiDung)
    {
        NguoiDung.Info.TenDangNhap = tb_TenDangNhap.Text;
        NguoiDung.Info.MatKhau = Function.MD5(tb_MatKhau.Text);
        NguoiDung.Info.HoTen = tb_HoTen.Text;
        NguoiDung.Info.CMND = tb_CMND.Text;
        NguoiDung.Info.DiaChi = tb_DiaChiLienLac.Text;
        NguoiDung.Info.DienThoai = tb_DienThoai.Text;
        NguoiDung.Info.NgaySinh = DateTime.Parse(tb_NgaySinh.Text);
        NguoiDung.Info.Email = tb_Email.Text;
        NguoiDung.Info.Fax = tb_Fax.Text;
        byte[] maThe=Function.SHA1(tb_MaThe.Text);
        NguoiDung.Info.MaThe = maThe;
    }

    private bool KiemTraTaiKhoan()
    {
        bool KiemTra = true;
        //Kiem tra ten dang nhap
        if (tb_TenDangNhap.Text == "")
        {
            lb_TenDangNhap.Visible = true;
            lb_TenDangNhap.Text = "Tên đăng nhập không được để trống";
            KiemTra = false;
        }
        else
        {
            lb_TenDangNhap.Visible = false;
        }
        //Kiem tra mat khau
        if (tb_MatKhau.Text == "")
        {
            lb_MatKhau.Visible = true;
            lb_MatKhau.Text = "Mật khẩu không được để trống";
            KiemTra = false;
        }
        else
        {
            if (tb_MatKhau.Text != tb_XacNhanMatKhau.Text)
            {
                lb_MatKhau.Visible = true;
                lb_MatKhau.Text = "Mật khẩu và mật khẩu xác nhận phải giống nhau";
                KiemTra = false;
            }
            else
            {
                lb_MatKhau.Visible = false;
            }
        }
        NguoiDung_Ctl ND=new NguoiDung_Ctl();
        ND.Info.TenDangNhap=tb_TenDangNhap.Text;
        ND.Info.Email=tb_Email.Text;
        ND.Info.CMND=tb_CMND.Text;
        if (tb_Email.Text == "")
        {
            KiemTra = false;
            lb_Email.Visible = true;
            lb_Email.Text = "Email không được để trống";
        }
        else
            lb_Email.Visible = false;
        if (tb_CMND.Text == "")
        {
            KiemTra = false;
            lb_CMND.Visible = true;
            lb_CMND.Text = "CMND không được để trống";
        }
        else
            lb_CMND.Visible = false;
        lb_Email.Text = "Email không được để trống";
            lb_Email.Visible = false;
        int tam = ND.KiemTraNguoiDungHopLe();
        if (tam == 1)
        {
            KiemTra = false;
            lb_TenDangNhap.Visible = true;
            lb_TenDangNhap.Text = "Tên đăng nhập bị trùng";
        }
        if (tam == 2)
        {
            KiemTra = false;
            lb_Email.Visible = true;
            lb_Email.Text = "Email này đã được đăng ký";
        }
        if (tam == 3)
        {
            KiemTra = false;
            lb_CMND.Visible = true;
            lb_CMND.Text = "CMND này đã được đăng ký";
        }
        return KiemTra;
    }

    private bool KiemTraTheHopLe()
    {
        if (!Function.Luhn(tb_MaThe.Text))
        {
            lb_MaThe.Visible = true;
            return false;
        }
        else
        {
            lb_MaThe.Visible = false;
        }
        DateTime NgayHetHan = new DateTime(int.Parse(cb_NamHetHan.Text), int.Parse(cb_ThangHetHan.Text), 1);

        KiemTraTheTinDung.KiemTraTheTinDung KT = new KiemTraTheTinDung.KiemTraTheTinDung();
        byte[] MaThe = Function.SHA1(tb_MaThe.Text);
        if (!KT.KiemTraThe(tb_TenChuThe.Text, MaThe, NgayHetHan, cb_LoaiThe.Text))
        {
            lb_MaThe.Visible = true;
            return false;
        }
        else
        {
            lb_MaThe.Visible = false;
        }
        return true;
    }
}
